1. Field of the Invention
This invention relates to an automatic programming system for automatically generating software that meet requested specifications.
2. Description of the Prior Art
In one prior art system, program source code is generated from block diagrams from a program analysis diagram (PAD) system. This prior art system is disclosed in more detail in a treatise entitled "Automatic Personal Computer Program Generation Based on PAD Specifications" (Treatise No. 3L-10) in Transactions II of the 36-th National Lecture Meeting of the Information Processing Society of Japan. A more general automatic programming system is disclosed in a treatise entitled "--Basic Concept--Consistent Real-Time System Development System" (Treatise No. 5M-10) disclosed in Transactions II of the 36th-National Lecture Meeting of the Information Processing Society of Japan. The less general automatic programming system is encompassed with the more general system; thus, the scope of the more general automatic programming system will now be described in more detail.
The operation of the more general system will now be described with reference to FIG. 6. A user provides a set of requested software specifications 100. These requested specifications set forth the desired functionality of a program that the user wishes to have generated. The specifications from the user are analyzed by a request definition analysis means 102 which processes the specifications to yield information about the functionality and state of the desired code. In the prior art, this means was not implemented as a machine, but rather was performed manually by specialists. This analysis primarily involves devising a program constitution that satisfies the requested specifications. This determination often involves balancing of the program structure to realize an optimum combination of software components.
The results of the definition analysis means 102 are passed to a block diagram production means 103 to produce data flow diagrams, control flow diagrams, module diagrams and PAD diagrams. The production of these diagrams is automated, although not perfectly. The automatic programming production means 104 then uses these diagrams to automatically produce source code (programs) in a machine language that satisfies the requested specifications. Lastly, the program test means 105 performs a program test on the generated code. The program test primarily determines if the specifications are satisfied by the code. It is possible to conduct the program test while simultaneously observing the program execution of the code so as to increase test efficiency. If the program test reveals that the requested specifications are not satisfied, the above described process is repeated.
The design reviewing operation for reviewing the design results to identify and correct deficiencies has all been done manually in the prior art. Hence, no design reviewing software has been assembled in th prior art. Further, no software for performing FMEA (failure mode and effect analysis) has been assembled; rather this analysis has been performed manually.
In the prior art, the program constitution trading-off operation, the failure mode and effect analysis and the design reviewing have been performed manually. As such, the tasks of generating software has been very labor intensive and time consuming. Further, the design stage and test stage are not directly coupled together. Accordingly, the results of design cannot be effectively utilized during testing.